Ext.define('CS.data.CustomStore', {
	extend: 'Ext.data.Store',
	requires: ['CS.data.proxy.Custom'],

	constructor: function(config) {
		config = CS.apply({}, config);

		if (CS.isNull(config.data)) {
			config.proxy = {
				type: 'custom',
				url: config.url,
				reader: {
					type: 'json',
					root: 'data',
					totalProperty: 'count'
				}
			};

			delete config.url;
		} else {
			if (Ext.isString(config.data)) {
				var arr = config.data.split(',');
				config.data = [];
				for (var i = 0; i < arr.length; i++) {
					config.data.push(arr[i].split(':'));
				}
			}

			if (CS.isNotEmpty(config.data) && Ext.isArray(config.data[0])) {
				config.proxy = {
					type: 'memory',
					reader: 'array'
				}
			}
		}

		this.callParent([config]);
	}

});
